package Ep05_StackAndQueue._0150;

import java.util.Stack;

/**
 * @author Jimmy Zhan WORKSTATION
 * @date 2023/4/13 20:07
 * 说明：
 */

public class Mine {
    public int evalRPN(String[] tokens) {
        Stack<Integer> stack = new Stack<>();
        for (String s: tokens) {
            if (s.equals("+")){
                stack.push(stack.pop() + stack.pop());
            } else if (s.equals("-")){
                int temp1 = stack.pop();
                int temp2 = stack.pop();
                stack.push(temp2 - temp1);
            } else if (s.equals("*")){
                stack.push(stack.pop() * stack.pop());
            } else if (s.equals("/")){
                int temp1 = stack.pop();
                int temp2 = stack.pop();
                stack.push(temp2 / temp1);
            } else {
                // Integer.parseInt(s)返回原生int，在push时自动装箱
                // Integer.valueOf(s) 内部调用了parseInt()，并且完成了装箱操作，返回Integer类型
                stack.push(Integer.valueOf(s));
            }
        }
        return stack.pop();
    }
}
